package com.igoal.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Type;

@Entity
@Table(name = "profile_complete")
public class ProfileComplete implements Serializable, Audit {

	private static final long serialVersionUID = -349909577640578799L;

	private Long id;
	private boolean basicInfo;
	private boolean avatar;
	private boolean hobby;
	private boolean addGoal;
	private Date createDate;
	private Date updateDate;
	private DataStatus status;

	@Id
	@Column(name = "id", unique = true, nullable = false)
	public long getId() {
		return this.id;
	}

	public void setId(long id) {
		this.id = id;
	}

	@Column(name = "basic_info", nullable = false, length = 1)
	@Type(type = "yes_no")
	public boolean getBasicInfo() {
		return this.basicInfo;
	}

	public void setBasicInfo(boolean basicInfo) {
		this.basicInfo = basicInfo;
	}

	@Column(name = "avatar", nullable = false, length = 1)
	@Type(type = "yes_no")
	public boolean getAvatar() {
		return this.avatar;
	}

	public void setAvatar(boolean avatar) {
		this.avatar = avatar;
	}

	@Column(name = "hobby", nullable = false, length = 1)
	@Type(type = "yes_no")
	public boolean getHobby() {
		return this.hobby;
	}

	public void setHobby(boolean hobby) {
		this.hobby = hobby;
	}

	@Column(name = "add_goal", nullable = false, length = 1)
	@Type(type = "yes_no")
	public boolean getAddGoal() {
		return this.addGoal;
	}

	public void setAddGoal(boolean addGoal) {
		this.addGoal = addGoal;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "cdate", nullable = false, length = 19)
	public Date getCreateDate() {
		return this.createDate;
	}

	public void setCreateDate(Date cdate) {
		this.createDate = cdate;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "mdate", nullable = false, length = 19)
	public Date getUpdateDate() {
		return this.updateDate;
	}

	public void setUpdateDate(Date mdate) {
		this.updateDate = mdate;
	}

	@Enumerated(EnumType.STRING)
	@Column(name = "status", nullable = false)
	public DataStatus getStatus() {
		return status;
	}

	public void setStatus(DataStatus dataStatus) {
		this.status = dataStatus;
	}

}
